<!DOCTYPE html>
<meta charset="utf-8">
<title>beforematch fired on ScrollToTextFragment</title>
<link rel="author" title="Joey Arhar" href="mailto:jarhar@chromium.org">
<link rel="help" href="https://github.com/WICG/display-locking">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>

<script src="/common/utils.js"></script>
<script src="/scroll-to-text-fragment/stash.js"></script>

<script>
promise_test(t => new Promise((resolve, reject) => {
  const key = token();
  test_driver.bless('Open a scroll to text fragment URL', () => {
    window.open(
      `resources/hidden-until-found-text-fragment.html?key=${key}#:~:text=foo`,
      '_blank',
      'noopener');
  });
  fetchResults(key, resolve, reject);
}).then(results => {
  assert_false(results.targetHasHiddenAttribute,
    'The matching hidden=until-found element should have its hidden attribute removed so it can be scrolled to.');
  assert_true(results.pageYOffsetAfterRaf > 0,
    'The page should be scrolled down to foo.');
}), 'Verifies that the beforematch event is fired on the matching element of a ScrollToTextFragment navigation.');
</script>
